home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c-part1 / 6700 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  3.3 KB

  1. Path: ix.netcom.com!netnews
  2. From: Norman Bullen <nbullen@ix.netcom.com>
  3. Newsgroups: comp.lang.c
  4. Subject: Re: Ability to locate spaces?
  5. Date: Sat, 17 Feb 1996 15:44:05 -0800
  6. Organization: Black Cat Associates
  7. Message-ID: <31266845.2D65@ix.netcom.com>
  8. References: <Pine.SOL.3.91.960215222301.15979A-100000@teer1.acpub.duke.edu> <1996Feb16.162842.18380@zcon.com>
  9. NNTP-Posting-Host: ple-ca7-18.ix.netcom.com
  10. Mime-Version: 1.0
  11. Content-Type: text/plain; charset=us-ascii
  12. Content-Transfer-Encoding: 7bit
  13. X-NETCOM-Date: Sat Feb 17  4:01:10 PM PST 1996
  14. X-Mailer: Mozilla 2.0 (Win16; I)
  15.  
  16. Syed Zaeem Hosain wrote:
  17. > In article <Pine.SOL.3.91.960215222301.15979A-100000@teer1.acpub.duke.edu>, John 
  18. Young Oh <jyo@acpub.duke.edu> writes:
  19. > >I am trying to write a program that reads an input file and locates where
  20. > >the spaces are located. For example, if a line from the input file read:
  21. > >555555.55    5555.55   5555.55
  22. > >
  23. > >I would like the program to be able to recognize that there are spaces
  24. > >between the numbers and keep track of them. What I did was to use
  25. > >fgets and read in the line into a string. I then used a for loop
  26. > >and checked each array element of the character string and used an
  27. > >if statement to see if an array element was a space.
  28. > >Here are the lines of code:
  29. > >
  30. > >FILE *input;
  31. > >char *string, buf[200];
  32. > >int i, count;
  33. > >input = fopen ("data", "r");
  34. > >(etc etc etc)
  35. > >string = fgets (buf, 199, input);
  36. > >for (i = 0; i < 40; ++i)
  37. > >{
  38. > >       if (buf[i] == ' ')
  39. > >       {
  40. > >               ++count;
  41. > >       }
  42. > >}
  43. > >
  44. > >What is wrong with this code? It does not seem to work.
  45. > Well, what did the program do? What is the error? Is it a compiler
  46. > problem or a run-time problems? "Does not seem to work" is pretty darn
  47. > vague, in other words!  :-)
  48. > Here is what I would check:
  49. > 1. Did you initialize count to 0 before the lines get read?
  50. > 2. Did you check to see if fgets returns a legit result? I.e.  the line
  51. > has something to read?
  52. > 3. Is the line longer than 40 characters? If so, why does your loop
  53. > stop at 40 characters? Why not use the `\n` byte as a terminator for
  54. > the loop? Or the '\0' byte for that matter?
  55. > 4. Are the lines longer than 199 characters? If so, why is your "buf"
  56. > size set to 200?
  57. > 5. Did the call to "fopen" succeed? Are you reading real lines from
  58. > the input program?
  59. > 6. Is the filename correct? Does the file called "data" exist?
  60. > There may be other issues, but these are the ones that come to mind off
  61. > the top of my head since I do not know the symptoms you are actually
  62. > seeing when running the program.
  63. > As an aside: your first sentence says "... locates where the spaces are
  64. > located".  Later you say "recognize that there are spaces ...  and keep
  65. > track of them". What are you really trying to do - simply count them or
  66. > something else?
  67. >                                                                 Z
  68. > --
  69. > -------------------------------------------------------------------------> | Syed Zaeem Hosain          P. O. Box 610097            (408) 441-7021 |
  70. > | Z Consulting Group        San Jose, CA 95161             szh@zcon.com |
  71. > -------------------------------------------------------------------------
  72. The spaces that you see in the file may actually be tab characters or 
  73. other "whitespace" characters. Instead of
  74.        if (buf[i] == ' ')
  75. try
  76.        if (isspace(buf[i]))
  77.  
  78.